The present invention relates generally to the processing of data by a computer system. More specifically, the present invention relates to applying a flexible scheme technique to information within a particular medium.
Since the introduction of PC-based layout and publishing software in the late-1980""s, the explosive growth of this market has underscored graphic design as a vital component of effective business communications. The information explosion has resulted in hundreds of messagesxe2x80x94many enriched with clip art, custom illustrations, and scanned imagesxe2x80x94vying for attention across a wide variety of media (print, electronic, multimedia, etc.). Businesses have a significant need to visually differentiate their documents above the market noise. Pages that emphasize content with minimal attention to formatting, illustrations, layout, and visual appeal, will no longer attract the attention of increasingly sophisticated business audiences. Business users competing for readers"" time now place a premium on creating and publishing graphically attractive communications.
The proliferation of software tools, ready-made content (e.g., on-line photo libraries and CD-ROM disks of clip art), and desktop peripherals (e.g., color printers and scanners), have made attractive content and output affordable for anyone with a personal computer. In addition, the Internet has had a profound impact on both the breadth of content and distribution opportunities. However, producing professional-quality materials for disparate media, including the Internet, requires design expertise, a variety of authoring tools, and advanced computer skills; a rare combination among most business people. Home and small business users in particularxe2x80x94already taxed for time to cover multiple business rolesxe2x80x94seldom have the time or the tools needed to enhance their design and computer expertise.
To assist in the creation of materials, a number of word processing programs, desktop publishing tools, Internet authoring tools and the like have been developed. Many of the word processing programs allow the user to include tables, columns, pictures, rudimentary graphics, etc., within a document. However, these programs are typically not designed to easily facilitate the incorporation of professional looking design styles. Whereas a professional designer may find it relatively easy (albeit time consuming) to design a document having a professional looking and a coordinated set of fonts, colors and graphics (for example), such a result is beyond the reach of the typical personal or business user. Typical users know that they would like to be able to produce a design having a particular look in terms of fonts, colors, graphics, paragraph styles, etc., but lack the professional skills needed in order to produce a professional looking document in a short space of time.
For example, a typical user who is creating a document, web page, computer user interface or the like, may wish to produce a document having a xe2x80x9ctraditionalxe2x80x9d business like font scheme, but may not have the practiced eye of a professional layout designer in order to choose the correct font for their document title, the body of the text, its captions, etc. A profession designer would be able to choose appropriate fonts for each of these parts of the document that go well together. The typical user, though, has no such expertise.
In a further example, a user may wish to produce a web page having a rather subdued color scheme appropriate for a corporation. The average user may not be able to choose appropriate colors for different parts of the web page that go well together, as would a professional graphic artist. Further, another user who is creating a newsletter for a local club may wish to provide a certain whimsical style to the graphic elements of the newsletter, but may lack the skills of a professional graphic artist in choosing appropriate styles for the graphic elements of the newsletter such as boxes, ornamentation, backgrounds, or borders.
To address this need, certain software programs provide very rudimentary color or font settings for a document, but these lack flexibility and have other drawbacks. For example, recent versions of the WINDOWS operating system available from Microsoft Corporation of Redmond, Wash., allow a user to choose different colors for desktop items on the computer screen. Within WINDOWS, a user may choose the xe2x80x9cgaudyxe2x80x9d colors and receive a matched set of gaudy colors for all of the items on his or her desktop computer screen. However, this choice of particular colors for items is very rudimentary and has no flexibility. Each item is assigned a particular color and the user may not easily experiment or select from a coordinated set of a range of possible colors for the items. And because each item on the screen is assigned a particular color, should the user change to different colors, the relationship between items on the screen and their colors are lost. For example, if the color designer wished the border of a document to always be two shades brighter than the background, he or she would have to program (or xe2x80x9chard wirexe2x80x9d) this preference into each and every set of colors. Even worse, if the component designer of the components on the screen wanted the border component to always be two shades brighter than the background component, he or she would have to coordinate with the color designer, and oversee his or her work in order to make sure that the colors always made the border two shades brighter. Also, a user is not able to indicate that he or she desires more items being in color, or desires a greater variety of colors within a particular color setting.
In a further example of rudimentary settings, recent versions of Microsoft Word allow a user to define a particular style for a paragraph or a document. This defined style may then be applied to other paragraphs or documents. However, like the colors described above, this definition of a style does not allow a user to incrementally vary the look of a particular style in order to achieve a finer grained control over a given style. Also, the elements of a document rendered in a particular style are not coordinated. In other words, the styles do not allow relationships between elements of a document to be defined and maintained as a user switches from style to style.
In general, existing techniques for applying particular settings to a document are not flexible enough to allow the user greater control in choosing variations of a particular setting. Also, these existing techniques do not always allow the user to apply a particular setting at all levels of a document ranging from a particular word or heading, on up to the complete document itself. In addition, these techniques do not establish and maintain relationships between parts of a design that can be maintained when a particular setting changes. Therefore, a technique is desired that would remedy the above drawbacks in document production and that would bring the skills of professional designers and graphic artists to the fingertips of the average user.
To achieve the foregoing and other objects, and in accordance with the purpose of the present invention, a flexible scheme data structure and technique is disclosed that allows an average user to easily apply professional quality schemes to a variety of media.
In one embodiment of the invention, a scheme instance data structure is used for applying a set of coordinated attributes to any number of components within a composition. The data structure includes a scheme instance category indicating a type of scheme and a number of attributes corresponding to the scheme instance category. Also included are a number of scheme slots, and each scheme slot is associated with zero or more components of the composition. Each of the scheme slots is also associated with each of the attributes. In other words, each scheme slot is arranged to hold a distinct value for each of the attributes. In this fashion, for each of the scheme slots, the scheme instance data structure may be used to apply values of attributes to the components of the composition associated with each scheme slot. In a further embodiment, a scheme instance includes a number of levels, each level having a complete set of values for the attributes.
In another embodiment of the invention, a method of applying a scheme to a number of components in a composition uses a scheme instance data structure as described above. The method includes various steps, including receiving a chosen scheme instance category and receiving a chosen scheme instance name indicative of the scheme instance associated with the chosen scheme instance category. Once a scheme instance is indicated, a value is determined for a scheme attribute for one of the scheme slots using the scheme instance. Next, the determined value is assigned to one of the components in the composition associated with the scheme slot. In this fashion, the component takes on a characteristic consistent with the scheme instance.
Among other advantages, an embodiment of the present invention allows a user to apply a coordinated set of properties to a collection of objects within a composition such as a document. These coordinated properties define professional looking relationships between objects in a document, such that if a new scheme is applied to the document, the professional looking relationships between the objects remain. In addition, these coordinated properties are independent of a specific design. For example, a set of colors that look pleasing to the eye for a newsletter may also be applied to a business memorandum. Also, a particular scheme may be applied at a different granularity within a document such as to a particular element, a particular product grouping, a given page, or the complete document. Furthermore, the user is supplied with tools that allow him or her finer grained control in adjusting levels within a particular scheme. For example, for a particular color scheme, the user may easily adjust this color scheme incrementally from a xe2x80x9csubduedxe2x80x9d version to a xe2x80x9cgaudyxe2x80x9d version of that color scheme.